/*
 * TabClase.cpp
 *
 *  Created on: 02/06/2013
 *      Author: juan
 */

#include "gui/SubWindow/ClassInfoWindow/TabClase.h"
#include "model/clases/Clase.h"
#include <iostream>

TabClase::TabClase():etiquetaNombre("Nombre"),
                     cajaTipo("Tipo de clase"),
                     abstracta("Abstracta"),
                     interfaz("Interfaz"),
                     normal("Normal"){


    this->add(cajaPrincipal);


    cajaPrincipal.pack_start(cajaNombre, Gtk::PACK_SHRINK, 10);
    cajaPrincipal.pack_start(cajaTipo, Gtk::PACK_SHRINK, 10);


    cajaNombre.pack_start(etiquetaNombre, Gtk::PACK_SHRINK, 10);
    cajaNombre.pack_start(entradaNombre, Gtk::PACK_EXPAND_WIDGET, 10);

    cajaTipo.pack_start(normal, Gtk::PACK_SHRINK, 10);
    cajaTipo.pack_start(abstracta, Gtk::PACK_SHRINK, 10);
    cajaTipo.pack_start(interfaz, Gtk::PACK_SHRINK, 10);

    normal.set_active();

    normal.set_group(grupo);
    abstracta.set_group(grupo);
    interfaz.set_group(grupo);

}

TabClase::~TabClase() {
}

void TabClase::insertarse(Gtk::Notebook& m_Notebook){
    m_Notebook.append_page(*this, "Clase");
}

void TabClase::inicializar(const std::string& nombre, int tipo) {
	entradaNombre.set_text(nombre);
	entradaNombre.signal_changed().connect(
			sigc::mem_fun(this, &TabClase::on_entrada_nombre_change));
	switch (tipo) {
	case ABSTRACT:
		abstracta.set_active();
		break;
	case INTERFACE:
		interfaz.set_active();
		break;
	default:
		normal.set_active();
		break;
	}
}

void TabClase::on_entrada_nombre_change(){

}

std::string TabClase::getCajaNombreContenido() const{
	return this->entradaNombre.get_text();
}
bool TabClase::esAbstracta(){
    return abstracta.get_active();
}
bool TabClase::esInterfaz(){
    return interfaz.get_active();
}
